package com.googlecode.xpathproxy.conversion;

import javax.xml.namespace.QName;

/**
 * @author Ray Krueger
 */
public interface Converter<T> {

    /**
     * Must return one of the xpath return types.
     * Implementers must return one of the {@link javax.xml.xpath.XpathConstants} values.
     *
     * @return QName expected as input
     * @see javax.xml.xpath.XpathConstants
     */
    QName getExpectedInput();

    boolean supportsOutputType(Class<?> cls);

    T convert(Object input);

}
